home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / BORL_TIP / TI100 / TI342.ASC < prev    next >
Text File  |  1991-09-11  |  3KB  |  133 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.   PRODUCT : TURBO PASCAL                               NUMBER : 342
  10.   VERSION : 3.02A
  11.        OS : PC-DOS, MS-DOS
  12.      DATE : October 9, 1986                              PAGE : 1/2
  13.     TITLE : ADVANCED FILE HANDLING
  14.  
  15.  
  16.  
  17.  
  18.   The following information  is  presented  for  advanced  users of
  19.   Turbo Pascal using MS-DOS or PC-DOS operating systems.
  20.  
  21.   Turbo Pascal uses MS-DOS file  handles  to  open  files. Function
  22.   call 3DH is used. One of the parameters to this call is the "open
  23.   mode,"  which provides DOS with information  about  the  way  you
  24.   intend  to  access  the  file  and  what  access to  allow  other
  25.   processes (in a networking or future multitasking environment).
  26.  
  27.   Turbo  Pascal  normally  uses  an  open  mode  byte of  2,  which
  28.   designates   Compatibility   Mode   with  Read/Write  Access  and
  29.   Inheritance by child processes. By  changing  the  value  of this
  30.   byte to  0,  you  may  open  Read-only  files. There may be other
  31.   applications for this, especially in a network environment.
  32.  
  33.   Open mode byte for Reset & Rewrite (PC-DOS):
  34.  
  35.       TURBO.COM    CSEG:$24C6
  36.       TURBO-87.COM CSEG:$1F75
  37.       TURBOBCD.COM CSEG:$23CE
  38.  
  39.   Open mode byte for Reset & Rewrite (MS-DOS):
  40.  
  41.       TURBO.COM    CSEG:$21EE
  42.       TURBO-87.COM CSEG:$1C9D
  43.       TURBOBCD.COM CSEG:$20F6
  44.  
  45.   The best way  to  use  this  information is to create an absolute
  46.   variable pointing to the byte, for example:
  47.  
  48.    var OpenModeByte: byte absolute CSeg:$24C6; (TURBO.COM PC-DOS)
  49.  
  50.   For additional safety, make sure that the value of the byte being
  51.   changed is actually 2 before  changing  it.  Remember,  change it
  52.   back to 2 if you intend to do normal file opening intermixed with
  53.   opening  of  Read-only  or  shared  files.  Information   on  the
  54.   different  attributes  can  be  found  in the DOS  3.0  Technical
  55.   Reference Manual.
  56.  
  57.   { Using TURBO.COM version 3.02A }
  58.  
  59.   var OpenModeByte: byte absolute CSeg:$24C6;  (TURBO.COM PC-DOS)
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.   PRODUCT : TURBO PASCAL                               NUMBER : 342
  76.   VERSION : 3.02A
  77.        OS : PC-DOS, MS-DOS
  78.      DATE : October 9, 1986                              PAGE : 2/2
  79.     TITLE : ADVANCED FILE HANDLING
  80.  
  81.  
  82.  
  83.  
  84.   Procedure AccessReadOnly;
  85.  
  86.   begin
  87.     if not(OpenModeByte in [0, 2]) then
  88.       Error
  89.     else
  90.       OpenModeByte := 0;
  91.   end;
  92.  
  93.   procedure AccessReadWrite;
  94.  
  95.   begin
  96.     if not(OpenModeByte in [0, 2]) then
  97.       Error
  98.     else
  99.       OpenModeByte := 2;
  100.   end;
  101.  
  102.   The  open  mode  byte  for  overlay, chain, and execute files  is
  103.   normally 0, Compatibility Mode with  Read  Access.  The addresses
  104.   for  these  mode  bytes  can  be found by searching the  run-time
  105.   library for the bytes 00 3D. The first occurrence is the one used
  106.   for overlay files, and  the  second is used for Chain and Execute
  107.   files.
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.